package org.jason.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import org.jason.model.common.dtos.ResponseResult;
import org.jason.model.user.dtos.*;
import org.jason.model.user.pojos.CuUser;

import java.util.List;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author jason
 * @since 2023-07-19
 */
public interface ICuUserService extends IService<CuUser> {
    /**
     * 用户登录
     * @param loginDto 登录表单
     * @return
     */

    ResponseResult login(LoginDto loginDto);

    /**
     * 用户注册
     * @param registerDto 注册表单
     * @return
     */
    ResponseResult register(RegisterDto registerDto);

    /**
     * 获取个人信息
     * @return 个人信息
     */
    ResponseResult<CuUser> getPersonalInfo();


    /**
     * 修改非敏感个人信息
     * @param dto 个人信息
     * @return 修改结果
     */
    ResponseResult editPersonalInfo(EditPersonalInfoDto dto);

    /**
     * 修改密码
     * @param dto 旧密码 新密码
     * @return 修改结果
     */
    ResponseResult changePassword(ChangePasswordDto dto);

    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    ResponseResult<CuUser> getUserInfo(Integer userId);

    /**
     * 修改用户头像
     * @param dto
     */
    void changeAvatar(ChangeAvatarDto dto);

    /**
     * 后台登录
     * @return
     */
    ResponseResult backstageLogin(LoginDto dto);
}
